home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 4
/
FM Towns Free Software Collection 4 - Disc 1.iso
/
data
/
fmgraph
/
fmgraph.h
< prev
next >
Wrap
Text File
|
1991-10-18
|
12KB
|
281 lines
#ifndef __FMGRAPH_
#define __FMGRAPH_
/*--複数パレットを一回の呼び出しで設定するさいのデータ構造体 */
struct PALETLIST {
unsigned size; /* データサイズ 6 * 指定パレット数 */
struct PALETTE {
unsigned colorid; /* 色番号 */
unsigned char reserve;
unsigned char red; /* 赤階調 */
unsigned char green; /* 緑階調 */
unsigned char blue; /* 青階調 */
} pltbl[16];
};
/*==グラフィックBIOS初期化 このライブラリを使う際には必ず最初に呼び出すこと */
void g_init(char far *); /* 作業領域アドレスの指定 先頭1ワードに領域サイズ */
/* -2の値を設定しておく。 */
/* アドレスが0000:0000ならば、BIOS内のデフォルトを */
/* 使用する。 */
/*==境界線色 矩形、円、扇形、楕円、楕円扇形などの外枠線の色 */
int g_bordercolor(unsigned); /* ハードウェアで指定可能な範囲の値 */
/*==境界線種 */
int g_borderlineid(char); /* 1~127のID 1~5までは初期パターン有り 以後は */
/* ユーザー設定(設定されるまではNULLとなる) */
/*==境界線モード 外枠線を描画するかどうか */
int g_bordermode(unsigned char);
#define BORDER_DRAW 1 /* 描画する (デフォルト) */
#define BORDER_NODRAW 0 /* 描画しない */
/*==矩形 */
int g_box(int,int,int,int); /* 基点X座標,基点Y座標,対角X座標,対角Y座標 */
/*==図形出力中止 */
void g_break(void);
/*==文字色 */
int g_charcolor(unsigned);
/*==文字の方向 */
int g_chardirection(int,int,int,int);
/* 高さ方向X成分,高さ方向Y成分,幅方向X成分,幅方向X成分 (-1,0,1の範囲?) */
/* 高さ方向のX成分とY成分はどちらかが0でなければならない。両方が0だとエラー */
/* 幅方向は両方が0だとエラーだが、両方0以外は良い */
/*==文字の扱い */
int g_charhandling(unsigned char);
#define HANDLE_STR 0 /* 文字間空白、文字方向、文字列方向を無視し、*/
/* 空白無し、文字をXY軸の正方向、文字列を右に*/
/* 描画する (デフォルト) */
#define HANDLE_CHAR 1 /* 各設定値に従う */
/*==文字高さ */
int g_charheight(unsigned);
/*==文字間空白 を文字高さに対する比率(分数)で指定する */
int g_charspace(unsigned,unsigned); /* 分子,分母 */
/*==文字幅 を文字高さに対する比率(分数)で指定する */
int g_charwidth(unsigned,unsigned); /* 分子,分母 */
/*==円 */
int g_circle(int,int,int); /* 中心X座標,中心Y座標,半径 */
/*==円弧 */
int g_circle_arc(int,int,int,int,int,int,int);
/* 中心X座標,中心Y座標,開始軸X成分,開始軸Y成分,終了軸X成分,終了軸Y成分,半径 */
/*==円扇形 */
int g_circle_sector(int,int,int,int,int,int,int);
/* 中心X座標,中心Y座標,開始軸X成分,開始軸Y成分,終了軸X成分,終了軸Y成分,半径 */
/*==クリップ枠 */
int g_clip(int,int,int,int); /* 基点X座標,基点Y座標,対角X座標,対角Y座標 */
/*==クリップモード */
int g_clipmode(unsigned char);
#define CLIP_HARD 0 /* 画面枠 */
#define CLIP_CLIPFRAME 1 /* クリップ枠 (デフォルト) */
#define CLIP_VIEWPORT 2 /* ビューポート */
/*==全画面消去 */
void g_cls(void);
/*==色指定のビットイメージ読み出し */
int g_colorget(unsigned char far *,unsigned char,int,int,int,int,unsigned,unsigned *);
/* バッファアドレス,読み出しページ,基点X座標,基点Y座標,対角X座標,対角Y座標, */
/* 読み出し指定色数(1~16),指定色配列アドレス */
/*==色指定のビットイメージ書き込み */
int g_colorput(unsigned char far *,unsigned char,int,int,int,int,unsigned,unsigned char);
/* バッファアドレス,書き込みページ,基点X座標,基点Y座標,対角X座標,対角Y座標, */
/* 書き込み色,書き込みモード(描画モードに同じ) */
/*==ユーザー座標系設定 */
int g_coodinate(int,int,int,int); /* 左下X座標,左下Y座標,右上X座標,右上Y座標*/
/*==描画モード */
int g_drawmode(unsigned char);
#define DRAW_PRESET 0 /* 背景色で描画する */
#define DRAW_AND 1 /* 描画先の色番号と AND する */
#define DRAW_PSET 3 /* 指定の色で描画する (デフォルト) */
#define DRAW_XOR 6 /* 描画先の色番号と XOR する */
#define DRAW_OR 7 /* 描画先の色番号と OR する */
#define DRAW_NOT 12 /* 文字描画時のみ有効 反転表示を行う */
/*==グラフィックカーソル表示 */
void g_gcurdisp(unsigned char);
#define GCUR_DISP 0 /* グラフィックカーソルを表示する */
#define GCUR_NODISP !0 /* グラフィックカーソルを表示しない */
/*==グラフィックカーソル形状 */
int g_gcurform(char,char,unsigned,unsigned,unsigned,unsigned char *,unsigned char *);
/* カーソル図形内の中心X座標,同Y座標,横ドット数(8の倍数),縦ドット数(1~32), */
/* 色番号,ANDパターンアドレス,XORパターンアドレス */
/*==グラフィックカーソル位置 */
void g_gcurpos(unsigned,unsigned); /* X座標,Y座標 (ハードウェア座標系) */
/*==汎用の図形出力 */
int g_generaloutput(char far *);
/*==全プレーンのビットイメージ読み出し */
void g_get(unsigned char far *,unsigned char,int,int,int,int);
/* バッファアドレス,読み出しページ,基点X座標,基点Y座標,対角X座標,対角Y座標, */
/*==バックグラウンドカラー読み出し */
int g_getbgcolor(void);
/*==16β互換モードの読み出し 値は設定の方を参照 */
int g_getcompatiblemode(void);
/*==表示中ページ番号の読み出し */
int g_getdisplaypage(void);
/*==書き込みページ番号の読み出し */
int g_getdrawpage(void);
/*==使用可能ページ数の読み出し */
int g_geteffectpage(void);
/*==ハッチング種別指定 */
int g_hatchid(char); /* 1~127のID 1~6までは初期パターン有り 以後は */
/* ユーザー設定(設定されるまではNULLとなる) */
/*==ハッチングパターン設定 */
int g_hatchpattern(char,unsigned,unsigned char *);
/* パターンID,縦ドット数(1~20),パターンデータ配列アドレス */
/*==線分 */
int g_line(int,int,int,int); /* 始点X座標,始点Y座標,終点X座標,終点Y座標 */
/*==線分色 */
int g_linecolor(unsigned);
/*==線分種別指定 */
int g_lineid(char); /* 境界線種別に同じ */
/*==線分パターン設定その1 */
int g_linepattern(char,unsigned); /* パターンID,パターンデータ(16ビット) */
/*==線分パターン設定その2 */
int g_linepattern2(char,unsigned char,unsigned char);
/* パターンID,パターンデータ1(初めの8ビット),パターンデータ2(後の8ビット) */
/*==パレット設定(複数) */
void g_multipalette(struct PALETLIST far *); /* パレット指定データのアドレス */
/*==楕円 */
int g_oval(int,int,int,int); /* 中心X座標,中心Y座標,X方向半径,Y方向半径 */
/*==楕円弧 */
int g_oval_arc(int,int,int,int,double,double);
/* 中心X座標,中心Y座標,X方向半径,Y方向半径,開始角(ラジアン),終了角(ラジアン) */
/* 使用するのに mathlib.lib が必要である */
/*==楕円扇形 */
int g_oval_sector(int,int,int,int,double,double);
/* 中心X座標,中心Y座標,X方向半径,Y方向半径,開始角(ラジアン),終了角(ラジアン) */
/* 使用するのに mathlib.lib が必要である */
/*==ペイント */
int g_paint(int,int,unsigned,unsigned *);
/* 中心X座標,中心Y座標,境界色数(1~16),境界色配列アドレス */
/*==ペイント色 */
int g_paintcolor(unsigned);
/*==ペイントモード ペイントや矩形、円、扇形、楕円、楕円扇形描画時の面塗り指定*/
int g_paintmode(unsigned char);
#define PAINT_NO 0 /* 塗り潰しをしない (デフォルト) */
#define PAINT_FILL 1 /* ベタ塗り */
#define PAINT_TILE 2 /* タイル塗り */
#define PAINT_HATCH 3 /* ハッチング塗り */
/*==パレット設定(単独) */
void g_palette(unsigned,unsigned char,unsigned char,unsigned char);
/* 色番号,赤階調,緑階調,青階調 */
/*==部分画面消去 */
void g_partclear(unsigned char,int,int,int,int);
/* 対象ページ番号,基点X座標,基点Y座標,対角X座標,対角Y座標 */
/*==部分画面複写 */
int g_partcopy(unsigned char,int,int,int,int,unsigned char,int,int,unsigned char);
/* 複写元ページ番号,基点X座標,基点Y座標,対角X座標,対角Y座標, */
/* 複写先ページ番号,基点X座標,基点Y座標,書き込みモード(描画モードに同じ) */
/*==使用プレーン数設定 */
void g_plane(unsigned char);
/*==点色 */
int g_pointcolor(unsigned);
/*==点 */
int g_pset(int,int); /* 描画X座標,描画Y座標 */
/*==全プレーンのビットイメージ書き込み */
int g_put(unsigned char far *,unsigned char,int,int,int,int,unsigned char);
/* バッファアドレス,書き込みページ,基点X座標,基点Y座標,対角X座標,対角Y座標, */
/* 書き込みモード(描画モードに同じ) */
/*==解像度の設定 */
int g_resolution(unsigned,unsigned); /* 水平ドット数,垂直ドット数 */
/*==スクロール */
void g_scroll(int,int); /* 水平移動ドット数,垂直移動ドット数 */
/*==バックグラウンドカラー設定 */
void g_setbgcolor(int);
/*==16β互換モードの設定 */
void g_setcompatiblemode(unsigned char);
#define COMPATI_BETA 0 /* 16β互換モード */
#define COMPATI_EXTD 1
/* 拡張モード(読み出し時の値、設定時は0以外ならば良い) */
/*==表示ページの設定 */
void g_setdisplaypage(unsigned char);
/*==書き込みページの設定 */
void g_setdrawpage(unsigned char);
/*==文字列描画の方向 */
int g_strdirection(unsigned char);
#define DIRECT_RIGHT 0 /* 右 */
#define DIRECT_LEFT 1 /* 左 */
#define DIRECT_UP 2 /* 上 */
#define DIRECT_DOWN 3 /* 下 */
/*==文字列出力 MAX 255バイト */
int g_string(int,int,unsigned char,char far *);
/* 開始X座標,開始Y座標,継続フラグ,文字列アドレス */
/* 開始XY座標は、文字の左下角の座標である */
/* 使用するのに farstr.lib が必要である */
#define STR_CONTINUE 1 /* この文字列描画の後に、継続描画する文字あり*/
#define STR_STOP 0 /* 継続描画する文字なし */
/*==継続した文字列出力 MAX 255バイト */
int g_string_cont(unsigned char,char far *); /* 継続フラグ,文字列アドレス */
/* 使用するのに farstr.lib が必要である */
/*==タイリング種別指定 */
int g_tileid(char); /* 1~127のID 初期パターンは無し */
/*==タイリングパターンの設定その1 */
int g_tilepattern(char,unsigned,unsigned char *,unsigned char *,unsigned char *,unsigned char *);
/* パターンID,縦ドット数(1~32),プレーン0データ配列アドレス, */
/* 以下プレーン1~3データ配列アドレス、と続く */
/*==タイリングパターンの設定その2 */
int g_tilepattern2(char,unsigned,unsigned *);
/* パターンID,縦ドット数(1~16),色番号データ配列アドレス */
/*==ビューポートの設定 */
int g_viewport(int,int,int,int); /* 基点X座標,基点Y座標,対角X座標,対角Y座標 */
#endif